require(["config"],function(){
	require( ["jquery","template", "header", "zoom", "cookie", "fly" ],function($,template){
		console.log("single webpage");
		
		function Detail(){
			this.render(); //提供
		}
		
		Detail.prototype= {
			constructor : Detail,
			//渲染页面数据
			render:function(){
				$.ajax("http://rap2api.taobao.org/app/mock/86513/api/detail")
				 .done($.proxy(this.handleData, this));
			},
			//处理AJAX获取到的数据
			handleData: function(data){
				//获取有用（成功）数据
				data = data.res_body.data;
				//渲染
				var html = template("detail_template", data);
				$(".content_box").prepend(html);
				//console.log(html);
				//放大镜
				console.log(this);
				this.zoom();
				//注册事件监听
				this.addListener();
			},
			//放大镜具体
			zoom: function(){
				$(".middle-zoom").elevateZoom({
					gallery: 'gal1',
					cursor: 'pointer',
					galleryActiveClass: 'active'
				});
			},
				
			addListener : function(){
				//添加到购物车
				$(".btn-buy").click(this.addTocartHandler);
			},
			addTocartHandler : function(event){
				// 获取当前选购商品的信息
				var currentProduct = {
					id: $(".prod_id").text(),
					title: $(".prod_title").text(),
					img: $("#gal1 img:first").attr("src"),
					price: $(".prod_price").text(),
					amout:1
				};
				console.log(currentProduct);
				/*判断是否已购当前商品*/
				$.cookie.json= true;// 配置自动在JS值与JSON文本之间相互转换
				var products = $.cookie("cart") || [];
				//判断
				var has= products.some(function(prod){
					if(prod.id == currentProduct.id){
						prod.mount++;
						return true;
					}
					return false;
				})
				if(!has)	//未曾选购	
					products.push(currentProduct);
					
				//保存cookie，用于购物车
				$.cookie("cart",products,{expires:3,path: "/"});
				
				//抛物线效果
				var end = $(".bag_left").offset();
					end.top -= $(window).scrollTop();
				var start = {top: event.pageY - $(window).scrollTop(), left:event.pageX};
				var flyer = $("#gal1 img:first").clone(); //复制的抛物线运动元素
				//运动
				flyer.fly( {
					start,
					end,
					onEnd:function(){
						this.destroy();
					}
				})
				
				return false
			}
			
		}
		
		new Detail();
	})
})